////============================================================================
//// Name        : Elab3d.cpp
//// Author      :
//// Version     :
//// Copyright   : Your copyright notice
//// Description : Hello World in C++, Ansi-style
////============================================================================
//
//#include <opencv2/highgui/highgui.hpp>
//#include<opencv2/imgproc/imgproc.hpp>
//#include<opencv2/core/core.hpp>
//#include <iostream>
//
//void conv2(cv::Mat src, int kernel_size) {
//	cv::Mat dst, kernel;
//	kernel = cv::Mat::ones(kernel_size, kernel_size, CV_32F); /// (float)(kernel_size*kernel_size);
//
//	/// Apply filter
//	cv::filter2D(src, dst, -1, kernel, cv::Point(-1, -1), 0,
//			cv::BORDER_DEFAULT);
//	cv::namedWindow("filter2D Demo", CV_WINDOW_AUTOSIZE);
//	imshow("filter2D Demo", dst);
//	src = dst;
//}
//
//int main() {
//
//	const uchar THERESHOLD = 254;
//
//
//	cv::Mat img;
//	img = cv::imread("01_3d.bmp");
//
//	int rows = img.rows;
//	int cols = img.cols;
//
//	std::cout << "Caricata immagine " << rows << "x" << cols << std::endl;
//
//	cv::cvtColor(img, img, CV_BGR2GRAY);
//
//	//just a thereshold
//	for (int i = 0; i < rows; ++i) {
//		uchar *cur_row = img.ptr(i);
//		for (int j = 0; j < cols; ++j) {
//			if (cur_row[j] < THERESHOLD) {
//				cur_row[j] = 0;
//			}
//		}
//	}
//
//	cv::GaussianBlur(img, img, cv::Size(3, 3), 0, 0);
//
//	/* AWESOME! */
//	conv2(img, 2);
//
//	/*
//	 //just a thereshold
//	 for (int i = 0; i < rows; ++i) {
//	 uchar *cur_row = img.ptr(i);
//	 for (int j = 0; j < cols; ++j) {
//	 if (cur_row[j] < THERESHOLD) {
//	 cur_row[j] = 0;
//	 }
//	 }
//	 }
//
//	 //processing new image
//	 for (int i = 1; i < rows - 1; ++i) {
//	 uchar *cur_row = img.ptr(i);
//	 for (int j = 1; j < cols - 1; ++j) {
//
//	 if (cur_row[j] > THERESHOLD) {
//
//	 int count = 0;
//	 uchar *tmp_row = img.ptr(i - 1);
//
//	 if (tmp_row[j - 1] > THERESHOLD)
//	 count++;
//	 if (tmp_row[j] > THERESHOLD)
//	 count++;
//	 if (tmp_row[j + 1] > THERESHOLD)
//	 count++;
//	 if (cur_row[j - 1] > THERESHOLD)
//	 count++;
//	 if (cur_row[j + 1] > THERESHOLD)
//	 count++;
//	 tmp_row = img.ptr(i + 1);
//	 if (tmp_row[j - 1] > THERESHOLD)
//	 count++;
//	 if (tmp_row[j] > THERESHOLD)
//	 count++;
//	 if (tmp_row[j + 1] > THERESHOLD)
//	 count++;
//
//	 if (count < 3)
//	 cur_row[j] = 0;
//
//	 }
//	 }
//	 }
//	 */
//	/*
//	 //processing new image another time
//	 for (int i = 1; i < rows - 1; ++i) {
//	 uchar *cur_row = img.ptr(i);
//	 for (int j = 1; j < cols - 1; ++j) {
//
//	 if (cur_row[j] > THERESHOLD2) {
//
//	 int count = 0;
//	 uchar *tmp_row = img.ptr(i - 1);
//
//	 if (tmp_row[j - 1] > THERESHOLD2)
//	 count++;
//	 if (tmp_row[j] > THERESHOLD2)
//	 count++;
//	 if (tmp_row[j + 1] > THERESHOLD2)
//	 count++;
//	 if (cur_row[j - 1] > THERESHOLD2)
//	 count++;
//	 if (cur_row[j + 1] > THERESHOLD2)
//	 count++;
//	 tmp_row = img.ptr(i + 1);
//	 if (tmp_row[j - 1] > THERESHOLD2)
//	 count++;
//	 if (tmp_row[j] > THERESHOLD2)
//	 count++;
//	 if (tmp_row[j + 1] > THERESHOLD2)
//	 count++;
//
//	 if (count < 3)
//	 cur_row[j] = 0;
//
//	 }
//	 }
//	 }*/
//
//	/* REEEEDDDDD */
//	//just a thereshold
//	/*	for (int i = 0; i < rows; ++i) {
//	 uchar *cur_row = img.ptr(i);
//	 for (int j = 0; j < cols; ++j) {
//	 if (cur_row[j] < 200) {
//	 cur_row[j] = 0;
//	 }
//	 }
//	 }
//	 */
//
//	cv::imwrite("/home/nico/out.bmp", img);
//
//	//cv::imshow("img", img);
//
//	cv::waitKey(0);
//
//	return 0;
//
//}
